\chapter{Preface}
\label{chapter:Preface}

I set out to write this book because I couldn't find it in a single volume elsewhere.

The closest published work on this topic appear to be select portions of 
{\em The RISC-V Instruction Set Manual, Volume I: User-Level ISA, Document Version 2.2}\cite{rvismv1v22:2017}, 
{The RISC-V Reader}\cite{riscvreader:2017}, and 
{Computer Organization and Design RISC-V Edition: The Hardware Software Interface}\cite{codriscv:2017}.

There {\em are} some terse guides on the Internet that are suitable 
for those who already know an assembly language.  With all the (deserved) 
excitement brewing over system organization (and the need to compress the 
time out of university courses targeting assembly language 
programming~\cite{Decker:1985:MAT:989369.989375}),
it is no surprise that RISC-V texts for the beginning assembly programmer 
are not (yet) available.

When I started in computing, I learned how to count in binary 
in a high school electronics course using data sheets for integrated 
circuits such as the 74191\cite{ttl74191:1979} and 74154\cite{ttl74154:1979}
prior to knowing that assembly language even existed.

I learned assembly language from data sheets and texts, that are still sitting on 
my shelves today, such as:
\begin{itemize}
\item The MCS-85 User's Manual\cite{mcs85:1978}
\item The EDTASM Manual\cite{edtasm:1978}
\item The MC68000 User's Manual\cite{mc68000:1980}
\item Assembler Language With ASSIST\cite{assist:1983}
\item IBM System/370 Principals of Operation\cite{poo:1980}
\item OS/VS-DOS/VSE-VM/370 Assembler Language\cite{assembler370:1979}
%\item The Series 32000 Databook\cite{ns32k:1986}
\item \ldots\ and several others
\end{itemize}

All of these manuals discuss each CPU instruction in excruciating detail 
with both a logical and narrative description.  For RISC-V this is 
also the case for the {\em RISC-V Reader}\cite{riscvreader:2017} and the 
{\em Computer Organization and Design RISC-V Edition}\cite{codriscv:2017} books
and is also present in this text (I consider that to be the minimal 
level of responsibility.)

Where I hope this text will differentiate itself from the existing RISC-V 
titles is in its attempt to address the needs of those learning assembly 
language for the first time.  To this end I have primed this project with 
some of the curriculum material I created when teaching assembly language 
programming in the late '80s.
